/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.clima.manager;

import com.brain.clima.dto.EncuestaDto;
import com.brain.clima.dto.EncuestadoDto;
import com.brain.clima.view.util.ConstantesClima;
import com.brain.core.exception.DAOException;
import com.brain.core.hibernate.dao.DAOGenerico;
import com.brain.core.manager.ComunManager;
import com.brain.sgc.dto.PersonaDto;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
/**
 *
 * @author Cmontes
 */
@Service
public class EncuestadoManager extends ComunManager<EncuestadoDto> implements Serializable {

    @Resource
    private DAOGenerico<EncuestadoDto> springHibernateDao;
    private static Logger logger = Logger.getLogger(EncuestadoManager.class);
    
    
    public EncuestadoDto obtenerPorId(Long id) throws DAOException {
       return springHibernateDao.obtenerDtoPorId(EncuestadoDto.class, id);
    }
    
    public List<EncuestaDto> obtenerEncuestasxPersona(EncuestaDto dtoFiltro, PersonaDto persona) throws DAOException {
        //List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select entidad.encuestaDto from EncuestadoDto as entidad where ";
        hqsql += " entidad.personaDto.id = " +  persona.getId();
        hqsql += " and entidad.encuestaDto.estadoDto.id = " +  dtoFiltro.getEstadoDto().getId();
        hqsql += " and (entidad.estadoDto.id = " +  ConstantesClima.Parametro.ENCUESTADO_ESTADO_PENDIENTE;
        hqsql += " or entidad.estadoDto.id is null)";
        return springHibernateDao.ejecutarQueryGeneric(hqsql);
        
    }
    
    public List<EncuestadoDto> obtenerEncuestadoxPersona(PersonaDto persona, EncuestaDto encuesta) throws DAOException {
        //List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select entidad from EncuestadoDto as entidad where ";
        hqsql += " entidad.personaDto.id = " +  persona.getId();
        hqsql += " and entidad.encuestaDto.id = " +  encuesta.getId();
        return springHibernateDao.ejecutarQueryGeneric(hqsql);        
    }
    
    public List<EncuestadoDto> obtenerEncuestadosNoTerminadosXEncuesta(EncuestaDto encuestaDto) throws DAOException {
        //List<Object> listaParametros = new ArrayList<Object>();
        String hqsql = "select entidad from EncuestadoDto as entidad where ";
        hqsql += " entidad.encuestaDto.id = " +  encuestaDto.getId();
        hqsql += " and (entidad.estadoDto.id = " +  ConstantesClima.Parametro.ENCUESTADO_ESTADO_PENDIENTE;
        hqsql += " or entidad.estadoDto.id is null)";
        return springHibernateDao.ejecutarQueryGeneric(hqsql);        
    }
}
